import request from '@/utils/request';
import type { BaseBeanModel, ResponsePageData, ResponseBaseData, QueryParamModel } from '@/api/model/baseModel';
const basePath = '/bpm/bpm/bpmButtonExt';
/** 流程按钮名称定义表 */
export interface BpmButtonExtDto extends BaseBeanModel {
  /** 按钮代码，必须唯一，即按钮id */
  code?: string;
  /** 按钮默认名称 */
  dName?: string;
  /** 按钮名称，即自定义名称，优先使用 */
  name?: string;
  /** 按钮描述 */
  desc?: string;
  /** 按钮顺序，默认正序排列显示 */
  order?: number;
  /** 扩展按钮需要绑定的js方法名称 */
  jsfunction?: string;
  /** 备用字段01 */
  buttonAttribute01?: string;
  /** 备用字段02 */
  buttonAttribute02?: string;
  /** 是否全局按钮，0标识不是全局，即节点，1标识是全局 */
  isGlobal?: string;
  /** 是否平台默认按钮，0标识不是，即扩展按钮，1标识是平台默认 */
  isPlatform?: string;
  /** 是否需要加入流程设计器进行配置，0标识不需要，1标识需要 */
  isDesign?: string;
  /** 按钮的图标样式 */
  buttonIcon?: string;
  /** 是否为常用按钮，0标识不常用，1标识常用，不常用按钮显示时会放入更多浮动层中 */
  buttonIsCommonly?: string;
}

/**
 * 获取分页数据
 * @param param 请求表格数据参数
 * @returns 列表数据
 */
export function listBpmButtonExtByPage(param: QueryParamModel): Promise<ResponsePageData<BpmButtonExtDto>> {
  return request.post(`${basePath}/getBpmButtonExtsByPage/v1`, param);
}

/**
 * 编辑页面根据id加载数据
 * @param id 行数据id
 * @returns 行数据信息
 */
export function getBpmButtonExt(id: string): Promise<ResponseBaseData<BpmButtonExtDto>> {
  return request.get(`${basePath}/getBpmButtonExt/v1?id=${id}`);
}

/**
 * 添加-保存表单数据
 * @param form 流程按钮名称定义表
 * @returns 新增的数据
 */
export function saveBpmButtonExt(form: BpmButtonExtDto): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/insertBpmButtonExt/v1`, form);
}

/**
 * 编辑-保存表单数据
 * @param form 流程按钮名称定义表
 * @returns 修改后的数据
 */
export function updateBpmButtonExt(form: BpmButtonExtDto): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/updateBpmButtonExt/v1`, form);
}

/**
 * 根据id删除表单数据
 * @param ids 行数据id/数据id集合
 * @returns 删除成功/失败的结果
 */
export function delBpmButtonExt(ids: [string]): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/deleteByIds/v1`, ids);
}
